2009-09-24 19 views
10

मैं छवि दृश्य को विस्तारित करके एक कस्टम छवि दृश्य बनाता हूं जो स्क्रीन पर कुछ पाठ खींचता है, हालांकि मुझे एमुलेटर स्क्रीन में चित्रित कुछ भी दिखाई नहीं देता है, लेकिन लॉग संदेश और प्रिंटलन्स लॉग कंसोल में मुद्रित होते हैं । क्या मैं कुछ नहीं कर रहा हूँ?कस्टम छवि दृश्य बनाना

यह मेरा गतिविधि

public class HelloAndroidActivity extends Activity 
{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     //  setContentView(R.layout.main); 
     CustomImageView myView = new CustomImageView(getApplicationContext()); 
     System.out.println("Setting the view"); 
     myView.invalidate(); 
     setContentView(myView); 
     System.out.println("Calling invalidate"); 
    } 
} 

है यह मेरा CustomImageView

public class CustomImageView extends ImageView 
{ 

    /** 
    * @param context 
    */ 
    public CustomImageView(Context context) 
    { 
     super(context); 
     // TODO Auto-generated constructor stub 
     setBackgroundColor(0xFFFFFF); 
    } 

    /** 
    * @param context 
    * @param attrs 
    */ 
    public CustomImageView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @param context 
    * @param attrs 
    * @param defStyle 
    */ 
    public CustomImageView(Context context, AttributeSet attrs, int defStyle) 
    { 
     super(context, attrs, defStyle); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected void onDraw(Canvas canvas) 
    { 
     // TODO Auto-generated method stub 
       super.onDraw(canvas); 
     System.out.println("Painting content"); 
     Paint paint = new Paint(Paint.LINEAR_TEXT_FLAG); 
     paint.setColor(0x0); 
     paint.setTextSize(12.0F); 
     System.out.println("Drawing text"); 
     canvas.drawText("Hello World in custom view", 100, 100, paint); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) 
    { 
     // TODO Auto-generated method stub 
     Log.d("Hello Android", "Got a touch event: " + event.getAction()); 
     return super.onTouchEvent(event); 

    } 
} 

onTouchEvent में भी लॉग संदेश() प्रिंट हो जाती है, लेकिन कुछ भी चित्रित है।

यह मेरा main.xml लेआउट

<?xml version="1.0" encoding="utf-8"?> 

<AbsoluteLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/AbsoluteLayout"> 
</AbsoluteLayout> 

उत्तर

3

उपयोग रंग मान Color.WHITE या Color.BLACK बजाय हेक्सा मान होता है।

+0

कोई यह – Ram

+0

@Ram काम नहीं करता है - केवल समस्या रंग मान था। हमें कलर क्लास का उपयोग रंगीन मानों के लिए करना चाहिए। – bhatt4982

+2

या प्रारूप 0xAARRGGBB प्रारूप में रंग हेक्सा मान का उपयोग करें। सफेद = 0xFFFFFFFF और काला = 0xFF000000 – bhatt4982

1

क्या आपने अपना कैनवास आकार चेक किया है? एक छवि दृश्य बिटमैप/ड्रायबल को अपने आकार को वापस करने और स्केलेटाइप झंडे के आधार पर, दृश्य के आकार को निर्धारित करने की अपेक्षा करता है। मुझे आपके कोड में कुछ भी दिखाई नहीं देता है जो लेआउट आवश्यकताओं के दृश्य के आकार को निर्धारित करता है।

-रिक

संबंधित मुद्दे