চিত্রের ওপরে অ্যান্ড্রয়েড পাঠ্য


97

আমার একটি চিত্র সহ একটি চিত্র রয়েছে, সেই চিত্রের উপরে আমি একটি পাঠ্য রাখতে চাই। আমি কীভাবে এটি অর্জন করতে পারি?


4
সহজ উপায় হ'ল কোনও পাঠ্যদর্শন নেওয়া এবং আপনি চিত্রকল্পে যেমন করেন তেমন পটভূমি সেট করা। এটি আপনার কাজটি সহজ করে দেবে ..
অ্যান্ড্রয়েডগীক

শুধু নীচের লিঙ্কটি দেখুন। আমি আশা করি এটা তোমার দর্শন লগ করা সাহায্য করবে ... stackoverflow.com/questions/11100428/...
গণেশ Katikar

উত্তর:


163

এইভাবেই আমি এটি করেছি এবং আপনি কোনও রিলেটিভ লাইআউটের ভিতরে যা চেয়েছিলেন ঠিক ঠিক তেমন কাজ করেছে:

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

    <ImageView
        android:id="@+id/myImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/myImageSouce" />

    <TextView
        android:id="@+id/myImageViewText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/myImageView"
        android:layout_alignTop="@id/myImageView"
        android:layout_alignRight="@id/myImageView"
        android:layout_alignBottom="@id/myImageView"
        android:layout_margin="1dp"
        android:gravity="center"
        android:text="Hello"
        android:textColor="#000000" />

</RelativeLayout>

এই উদাহরণের জন্য একটি টন ধন্যবাদ। আমি যৌগিক ড্র্যাবেল পাঠ্যদর্শনটি ব্যবহার করার চেষ্টা করেছি কিন্তু সেখানে আমি একটি চিত্র url সেট করতে সক্ষম নই। তবে লেআউট_লাইন সেটিংসকে স্বীকৃতি দেওয়ার জন্য এটি কোনও আপেক্ষিক বিন্যাসে ব্যবহার করা গুরুত্বপূর্ণ।
আন্তনস্যাক 11

প্রান্তিককরণের নিয়ন্ত্রণের আইডি রাখলে অনেকগুলি সমাধান হয়ে যায়, ধন্যবাদ
কল কোকাহ

17

আপনি কোনও ভিন্ন দিক থেকে নিতে পারেন: ব্যাকগ্রাউন্ডে একটি অঙ্কনযোগ্য টেক্সটভিউ পাওয়া সহজ বলে মনে হচ্ছে:

 <TextView
            android:id="@+id/text"
            android:background="@drawable/rounded_rectangle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        </TextView>

10
এই উত্তরের সমস্যাটি হ'ল আপনি চিত্রভিউয়ের মতো পটভূমি বৈশিষ্ট্যগুলি নিয়ন্ত্রণ করতে পারবেন না। উদাহরণস্বরূপ স্কেল।
যিশু ডিম্রিক্স

6

আপনি সম্ভবত

  • ক্লাস ইমেজভিউ থেকে উত্তরাধিকার সূত্রে একটি নতুন শ্রেণি তৈরি করুন এবং
  • পদ্ধতিটি ওভাররাইড করুন onDrawsuper.onDraw()প্রথমে সেই পদ্ধতিতে কল করুন এবং
  • তারপরে আপনি প্রদর্শন করতে চান এমন কিছু পাঠ্য অঙ্কন করুন।

যদি আপনি এটি সেভাবে করেন তবে আপনি এটি একক লেআউট উপাদান হিসাবে ব্যবহার করতে পারেন যা অন্যান্য উপাদানগুলির সাথে একসাথে বিন্যাস করা সহজ করে।


6

এটি অর্জনের জন্য আপনি ফ্রেমলআউট বা মার্জ লেআউটটি ব্যবহার করতে চান। অ্যান্ড্রয়েড ডেভ গাইড এর এখানে একটি দুর্দান্ত উদাহরণ রয়েছে: অ্যান্ড্রয়েড লেআউট ট্রিকস # 3: মার্জ করে অনুকূলিত করুন


5

অনেক উপায় আছে। আপনি রিলেটিভলআউট বা অ্যাবসুলিউট লেআউট ব্যবহার করেন।

আপেক্ষিকের সাথে, আপনার চিত্রটি বাম পাশে অভিভাবকের সাথে সারিবদ্ধ হতে পারে এবং পিতামাতার বামদিকেও পাঠ্যটি প্রান্তিকভাবে থাকতে পারে ... তারপরে আপনি যেখানে লাইন লাগিয়েছেন তা পেতে আপনি মার্জিন এবং প্যাডিং এবং মাধ্যাকর্ষণ ব্যবহার করতে পারেন ইমেজ উপর চান।


4
আমি দুর্ঘটনাক্রমে এই পদ্ধতিটি নিয়ে এসেছি। আপনি যখন কোনও ইমেজবটন বা চিত্র দর্শনের উপর কিছু পাঠ্য রাখতে চান তবে এটি খুব সহজ hand উদাহরণ - বর্তমান অবস্থার চিত্রের উপর বর্তমান তাপমাত্রা রাখুন।
ফোবস

2

আপনি একটি টেক্সটভিউ ব্যবহার করতে পারেন এবং আপনি যে চিত্রটি ব্যবহার করতে চান তার পটভূমি পরিবর্তন করতে পারেন


এই উত্তরের সমস্যাটি হ'ল আপনি চিত্রভিউয়ের মতো পটভূমি বৈশিষ্ট্যগুলি নিয়ন্ত্রণ করতে পারবেন না। উদাহরণস্বরূপ স্কেল।
যিশু ডিম্রিক্স

2

এর জন্য আপনি টেক্সটভিউতে android:drawableLeft/Right/Top/Bottomএকটি চিত্র স্থাপনের জন্য একটিমাত্র টেক্সটভিউ ব্যবহার করতে পারেন । এছাড়াও আপনি টেক্সটভিউ এবং অঙ্কনযোগ্য এর মধ্যে কিছু প্যাডিং ব্যবহার করতে পারেনandroid:drawablePadding=""

এটি এর মতো ব্যবহার করুন:

<TextView
    android:id="@+id/textAndImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:drawableBottom="@drawable/yourDrawable"
    android:drawablePadding="10dp" 
    android:text="Look at the drawable below"/>

এটির সাথে আপনার কোনও অতিরিক্ত চিত্রদর্শন প্রয়োজন হবে না। টেক্সটভিউয়ের একাধিক পার্শ্বে দুটি অঙ্কনযোগ্য ব্যবহার করাও সম্ভব।

এটি ব্যবহার করে আপনি যে সমস্যার মুখোমুখি হবেন তা হ'ল ছবিটি চিত্রের ভিউয়ের মতো করে আঁকতে পারা যায় না।


2

নীচের কোডটি চেষ্টা করুন এটি আপনাকে সহায়তা করবে `

  <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="150dp">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:src="@drawable/gallery1"/>


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#7ad7d7d7"
        android:gravity="center"
        android:text="Juneja Art Gallery"
        android:textColor="#000000"
        android:textSize="15sp"/>
</RelativeLayout>

0

নীচের কোডটি আপনাকে সহায়তা করবে

public class TextProperty {
    private int heigt;                              //读入文本的行数
    private String []context = new String[1024];    //存储读入的文本

    /*
     *@parameter wordNum
     *
     */
    public TextProperty(int wordNum ,InputStreamReader in) throws Exception {
        int i=0;
        BufferedReader br = new BufferedReader(in);
        String s;
        while((s=br.readLine())!=null){
            if(s.length()>wordNum){
                int k=0;
                while(k+wordNum<=s.length()){
                    context[i++] = s.substring(k, k+wordNum);
                    k=k+wordNum;
                }
                context[i++] = s.substring(k,s.length());
            }
            else{
                context[i++]=s;
            }
        }
        this.heigt = i;
        in.close();
        br.close();
    }


    public int getHeigt() {
        return heigt;
    }

    public String[] getContext() {

        return context;
    }
}
public class MainActivity extends AppCompatActivity {

    private Button btn;
    private ImageView iv;
    private final int WORDNUM = 35;  //转化成图片时  每行显示的字数
    private final int WIDTH = 450;   //设置图片的宽度

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        iv = (ImageView) findViewById(R.id.imageView);
        btn = (Button) findViewById(R.id.button);

        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                int x=5,y=10;
                try {
                    TextProperty tp = new TextProperty(WORDNUM, new InputStreamReader(getResources().getAssets().open("1.txt")));
                    Bitmap bitmap = Bitmap.createBitmap(WIDTH, 20*tp.getHeigt(), Bitmap.Config.ARGB_8888);
                    Canvas canvas = new Canvas(bitmap);
                    Paint paint = new Paint();
                    paint.setColor(Color.WHITE);
                    paint.setTextAlign(Paint.Align.LEFT);
                    paint.setTextSize(20f);

                    String [] ss = tp.getContext();
                    for(int i=0;i<tp.getHeigt();i++){
                        canvas.drawText(ss[i], x, y, paint);
                        y=y+20;
                    }

                    canvas.save(Canvas.ALL_SAVE_FLAG);
                    canvas.restore();
                    String path = Environment.getExternalStorageDirectory() + "/image.png";
                    System.out.println(path);
                    FileOutputStream os = new FileOutputStream(new File(path));
                    bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
                    //Display the image on ImageView.
                    iv.setImageBitmap(bitmap);
                    iv.setBackgroundColor(Color.BLUE);
                    os.flush();
                    os.close();
                }
                catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
    }
}```
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.