我在我的片段的第一個視圖中具有以下代碼,如下所示。Layoutinflater轉換爲位圖中的自定義Google標記錯誤
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map_activity_fragment1, null, false);
SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
tv = (TextView) view.findViewById(R.id.textRefresh);
customHandler = new android.os.Handler();
customHandler.postDelayed(updateTimerThread, 0);
return view;
}
接下來我運行一個計時器,並調用一個異步函數,其中在postexecute我有following.Here我做的是,我有以下標記圖標和文本框頂部的佈局,我需要動態填充。
protected void onPostExecute(String result) {
String s = result.trim();
markers.clear();
markersList.clear();
mMap.clear();
Log.e("onPostExecute ",result);
//Toast.makeText(getApplicationContext(), "restult is"+s, Toast.LENGTH_LONG).show();
String stringSucess = "";
//markers = new Hashtable<String, String>();
int height = 50;
int width = 40;
BitmapDrawable bitmapdraw=(BitmapDrawable)getResources().getDrawable(R.drawable.basgray);
Bitmap b=bitmapdraw.getBitmap();
Bitmap smallMarker = Bitmap.createScaledBitmap(b, width, height, false);
LatLng sydney = new LatLng(-34, 151);
mCustomMarkerView = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom_info_window, null);
mMarkerImageView = (ImageView) mCustomMarkerView.findViewById(R.id.profile_image);
Bitmap bitmap=null;
Marker mk = mMap.addMarker(new MarkerOptions()
.position(new LatLng(Double.parseDouble("-34"),Double.parseDouble("151")))
.icon(BitmapDescriptorFactory.fromBitmap(getMarkerBitmapFromView(mCustomMarkerView,bitmap))));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
我收到此錯誤消息。 .icon(BitmapDescriptorFactory.fromBitmap(getMarkerBitmapFromView(mCustomMarkerView,bitmap))));
問題有時我不知道什麼是錯誤只有一個它我得到這個錯誤java.lang.NullPointerException:嘗試調用虛擬方法'void android.widget.ImageView.setImageBitmap(android.graphics.Bitmap )'的空對象引用,但其他時間沒有錯誤。爲什麼只有一次,但其餘的沒有錯誤,只是停了下來。可以做些什麼來解決這個問題,以及如何爲我膨脹的佈局設置動態文本?
下面是我的生成位圖圖像的函數。
private Bitmap getMarkerBitmapFromView(View view, Bitmap bitmap) {
mMarkerImageView.setImageBitmap(bitmap);
view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.buildDrawingCache();
Bitmap returnedBitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
canvas.drawColor(Color.WHITE, PorterDuff.Mode.SRC_IN);
Drawable drawable = view.getBackground();
if (drawable != null)
drawable.draw(canvas);
view.draw(canvas);
return returnedBitmap;
}
這是自定義佈局文件之一。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/dialogimage2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:weightSum="1">
<TextView
android:id="@+id/textValue"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:background="@drawable/dialog"
android:text="PKH 52363"
android:gravity="top|center"
android:textColor="#000000"
android:textSize="15dp"
android:padding="3dp"
android:layout_weight="0" />
<ImageView
android:id="@+id/markerImage"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="-10dp"
android:layout_marginTop="0dp"
android:src="@drawable/basgray" />
</LinearLayout>
</LinearLayout>
這裏是如何看起來在地圖上。
這是怎麼看的設計。
後'custom_info_window.xml' –
@KishoreJethava我已經加入我的custom_infor_window.xml。我會爲後者提供各種不同的圖標和背景圖像。我會想讓他們動態的谷歌地圖標記,也動態地填充文本視圖。 – user5313398