2016-01-06 4 views
0

есть вопросы здесь же, как и в вышеуказанной теме , но не получили ответтусклых/размытие родительского макета фона

У меня есть макет здесь

мне нужно использовать изображение, как же в сверху макет для нижних один, но со стилем размытия

набора альфа не помогает - вид текста также влияет на

как размытие фона вниз макета

xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:background="#ffffff"> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:weightSum="105" 
     android:orientation="vertical"> 
/// top layout with image 
     <LinearLayout 
      android:background="@drawable/s" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="45"> 



     </LinearLayout> 


     //// other set of layouts that i want to add the same iamge but in blur style 
     <LinearLayout 
      android:alpha="220" 

      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="60" 
      android:weightSum="75" 
      android:orientation="vertical"> 



      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="25"> 

<TextView 
    android:id="@+id/brand_name" 
    android:layout_marginTop="10dp" 
    android:textSize="25dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="SHAKY ISLES" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

       <ImageView 
        android:id="@+id/image_icon" 
        android:layout_width="20dp" 
        android:layout_height="20dp" 
        android:background="#000000" 
        android:layout_below="@+id/brand_name" 
        android:layout_centerHorizontal="true" /> 

       <TextView 

        android:text=" 6 - 502 m" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignBottom="@+id/image_icon" 
        android:layout_alignRight="@+id/brand_name" 
        android:layout_alignEnd="@+id/brand_name" 
        android:layout_below="@+id/brand_name" /> 

      </RelativeLayout> 

      <RelativeLayout 

       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="20"> 

       <TextView 
        android:layout_marginLeft="10dp" 
        android:layout_marginRight="10dp" 
        android:id="@+id/discription" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here. " 
        android:layout_centerVertical="true" 
        android:layout_centerHorizontal="true" /> 

       <View 
        android:id="@+id/boder" 
        android:layout_marginLeft="30dp" 
        android:layout_marginRight="30dp" 
        android:layout_width="match_parent" 
        android:layout_height="1dp" 
        android:background="#000000"></View> 




      </RelativeLayout> 

      <RelativeLayout 

       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="30" 
       > 

       <TextView 
        android:id="@+id/address" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="22, Customs St E ,Auckland" 
        android:layout_centerVertical="true" 
        android:layout_centerHorizontal="true" /> 

       <View 
        android:id="@+id/down_border" 
        android:layout_alignParentTop="true" 
        android:layout_marginLeft="30dp" 
        android:layout_marginRight="30dp" 
        android:layout_width="match_parent" 
        android:layout_height="1dp" 
        android:background="#000000"></View> 

      </RelativeLayout> 



     </LinearLayout> 

    </LinearLayout> 



</LinearLayout> 

любая помощь?

даже с кодом с вне XML

+0

вы хотите размыть фон один ???????????? –

+0

его как две раскладок сверху один содержит изображение вторых один я уже добавить комментарий на XML включает ребенок Макеты слишком поэтому я хочу, чтобы размыть фоновое изображение, не затрагивая текст с видом макета ребенка но раскладки ребенка также получает, что размытие фон –

ответ

2

Г-н sisara стираться ваш взгляд попробовать этот код сделал некоторые кодирования для вас

public class MainActivity extends Activity { 
    private ImageView imViewAndroid; 

    private TextView discriptionn; 
    private TextView statusText; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test_layout); 
     imViewAndroid = (ImageView) findViewById(R.id.image); 

     discriptionn = (TextView) findViewById(R.id.discription); 
     statusText = addStatusText((ViewGroup) findViewById(R.id.relative_layout_down)); 
     applyBlur(); 


    } 

    private void applyBlur() { 
     imViewAndroid.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { 
      @Override 
      public boolean onPreDraw() { 
       imViewAndroid.getViewTreeObserver().removeOnPreDrawListener(this); 
       imViewAndroid.buildDrawingCache(); 

       Bitmap bmp = imViewAndroid.getDrawingCache(); 
       blur(bmp, discriptionn); 
       return true; 
      } 
     }); 
    } 

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 
    private void blur(Bitmap bkg, View view) { 
     long startMs = System.currentTimeMillis(); 

     float radius = 20; 

     Bitmap overlay = Bitmap.createBitmap((int) (view.getMeasuredWidth()), 
       (int) (view.getMeasuredHeight()), Bitmap.Config.ARGB_8888); 

     Canvas canvas = new Canvas(overlay); 

     canvas.translate(-view.getLeft(), -view.getTop()); 
     canvas.drawBitmap(bkg, 0, 0, null); 

     RenderScript rs = RenderScript.create(MainActivity.this); 

     Allocation overlayAlloc = Allocation.createFromBitmap(
       rs, overlay); 

     ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(
       rs, overlayAlloc.getElement()); 

     blur.setInput(overlayAlloc); 

     blur.setRadius(radius); 

     blur.forEach(overlayAlloc); 

     overlayAlloc.copyTo(overlay); 

     view.setBackground(new BitmapDrawable(
       getResources(), overlay)); 

     rs.destroy(); 
     statusText.setText(System.currentTimeMillis() - startMs + "ms"); 
    } 

    @Override 
    public String toString() { 
     return "RenderScript"; 
    } 

    private TextView addStatusText(ViewGroup container) { 
     TextView result = new TextView(MainActivity.this); 
     result.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
     result.setTextColor(0xFFFFFFFF); 
     container.addView(result); 
     return result; 
    } 
} 
1

Попробуйте это в XML

android:alpha="0.5" 

или в коде

yourView.getBackground().setAlpha(100); 

Попробуйте этот код

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent" 
android:background="#ffffff"> 


<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="105" 
    android:orientation="vertical"> 
    /// top layout with image 
    <LinearLayout 
     android:background="@drawable/s" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="45"> 



    </LinearLayout> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="60" 
     android:weightSum="75" 
     > 
     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:alpha="0.5" 
      android:adjustViewBounds="true" 
      android:scaleType="fitXY" 
      android:src="@drawable/s"/> 

     <LinearLayout 


      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="60" 
      android:weightSum="75" 
      android:orientation="vertical"> 



      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="25"> 

       <TextView 
        android:id="@+id/brand_name" 
        android:layout_marginTop="10dp" 
        android:textColor="@color/BlackColor" 
        android:textSize="25dp" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="SHAKY ISLES" 
        android:layout_alignParentTop="true" 
        android:layout_centerHorizontal="true" /> 

       <ImageView 
        android:id="@+id/image_icon" 
        android:layout_width="20dp" 
        android:layout_height="20dp" 
        android:background="#000000" 
        android:layout_below="@+id/brand_name" 
        android:layout_centerHorizontal="true" /> 

       <TextView 

        android:text=" 6 - 502 m" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignBottom="@+id/image_icon" 
        android:layout_alignRight="@+id/brand_name" 
        android:layout_alignEnd="@+id/brand_name" 
        android:layout_below="@+id/brand_name" /> 

      </RelativeLayout> 

      <RelativeLayout 

       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="20"> 

       <TextView 
        android:layout_marginLeft="10dp" 
        android:layout_marginRight="10dp" 
        android:id="@+id/discription" 
        android:layout_width="wrap_content" 
        android:textColor="@color/BlackColor" 
        android:layout_height="wrap_content" 
        android:text="22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here. " 
        android:layout_centerVertical="true" 
        android:layout_centerHorizontal="true" /> 

       <View 
        android:id="@+id/boder" 
        android:layout_marginLeft="30dp" 
        android:layout_marginRight="30dp" 
        android:layout_width="match_parent" 
        android:layout_height="1dp" 
        android:background="#000000"></View> 




      </RelativeLayout> 

      <RelativeLayout 

       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="30" 
       > 

       <TextView 
        android:id="@+id/address" 
        android:layout_width="wrap_content" 
        android:textColor="@color/BlackColor" 
        android:layout_height="wrap_content" 
        android:text="22, Customs St E ,Auckland" 
        android:layout_centerVertical="true" 
        android:layout_centerHorizontal="true" /> 

       <View 
        android:id="@+id/down_border" 
        android:layout_alignParentTop="true" 
        android:layout_marginLeft="30dp" 
        android:layout_marginRight="30dp" 
        android:layout_width="match_parent" 
        android:layout_height="1dp" 
        android:background="#000000"></View> 

      </RelativeLayout> 



     </LinearLayout> 

    </FrameLayout> 

    //// other set of layouts that i want to add the same iamge but in blur style 

</LinearLayout> 

+0

set alpha влияет на текстовые представления. не так ли? –

+0

Я имею в виду, что текст также будет похож на 0,5 с низкой видимостью –

+0

@SisaraRanasinghe У меня есть смена кода. Попробуйте его. ok –

Смежные вопросы